package com.pointstar.dp.queue;

/**
 * 队列
 *
 * @author 朱科睿
 */
public interface Queue<E> {
    /**
     * 入队
     *
     * @param e 入队元素
     */
    void enqueue(E e);

    /**
     * 出队
     *
     * @return 出队元素
     */
    E dequeue();

    /**
     * 获取队首元素
     *
     * @return 队首元素
     */
    E getFront();

    /**
     * 获取队列中元素的个数
     *
     * @return 队列中元素的个数
     */
    int getSize();

    /**
     * 判断队列是否为空
     *
     * @return 队列是否为空
     */
    boolean isEmpty();

    /**
     * 判断队列是否已满
     *
     * @return 队列是否已满
     */
    boolean isFull();
}
